package com.imc.platform.base.appointment.service;

import com.github.pagehelper.PageInfo;
import com.imc.api.order.pojo.LessonSchedule;
import com.imc.core.config.feign.MyPageImpl;
import com.imc.platform.base.appointment.pojo.Appointment;
import com.imc.platform.base.org.pojo.Org;
import com.imc.platform.base.user.pojo.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Map;

/*
* 类描述：预约信息服务类
* 开发者：YT
* 创建日期：2018/10/17 23:23
*/
public interface IAppointmentService {
    /*
    * YT  2018/10/17 23:25
    * 方法描述：根据条件查询预约信息
    */
    PageInfo<Appointment> queryAppointmentByMap(int pageNumber, int pageSize, Map <String, String> appointmentMap);

    /*
    * YT  2018/10/24 18:55
    * 方法描述：查询用户对应的预约信息
    */
    List<Map<String,Object>> getAppointmentListNoPage(Appointment appointment);

    /*
    * YT  2018/10/27 22:00
    * 方法描述：查询预约信息是否存在
    */
    List<Appointment> queryAppointmentExists(Appointment appointment);

    /*
    * YT  2018/10/27 22:01
    * 方法描述：分页拆线呢预约信息，假分页
    */
    MyPageImpl getAppointmentListPage(Appointment appointment, Pageable pageable);

    /*
    * YT  2018/10/27 22:01
    * 方法描述：根据课程ID查询课时列表
    */
    List<LessonSchedule> queryLessonSchedulerByLessonId(String lessonId,String userId);

    /*
     * YT  2018/10/17 23:14
     * 方法描述：新增预约信息
     */
    int addAppointment(Appointment appointment);

    /*
     * YT  2018/10/17 23:16
     * 方法描述：查看预约信息
     */
    Appointment queryAppointmentInfoById(String id);

    /*
    * YT  2018/10/18 19:30
    * 方法描述：修改状态
    */
    int updateState(String state,String id);
    /*
     * YT  2018/10/25 13:08
     * 方法描述：查询组织机构ID 信息
     */
    Org queryOrgIdByLessonId(String lessonId);

    /*
    * YT  2018/10/27 22:01
    * 方法描述：根据组织机构ID查询用户信息
    */
    String queryUserByOrgId(String orgId);

}
